/**************************************************************************
** Qt Creator license header template
**   Special keywords: Programmer 2012/3/20 2012
**   Environment variables: 
**   To protect a percent sign, use '%'.
**************************************************************************/

#ifndef MESHDEFS_H
#define MESHDEFS_H
#include <GL/glew.h>
#include <QtGui>
#include <vcg/simplex/vertex/base.h>
#include <vcg/simplex/vertex/component.h>
#include <vcg/simplex/face/base.h>
#include <vcg/simplex/face/component.h>

#include <vcg/complex/complex.h>
#include <vcg/complex/used_types.h>
#include <vcg/complex/algorithms/update/bounding.h>
#include <vcg/complex/algorithms/update/topology.h>
#include <vcg/complex/algorithms/update/normal.h>

#include <wrap/gl/trimesh.h>
#include <wrap/gui/trackball.h>
#include <wrap/gui/trackmode.h>
#include <wrap/qt/trackball.h>
#include <wrap/io_trimesh/import.h>

class MyVertex;
class MyFace;

class MyUsedTypes : public vcg::UsedTypes<
        vcg::Use<MyVertex>::AsVertexType,
        vcg::Use<MyFace>::AsFaceType>{};

class MyVertex : public vcg::Vertex<MyUsedTypes,
        vcg::vertex::Coord3f,
        vcg::vertex::Normal3f,
        vcg::vertex::BitFlags,
        vcg::vertex::VFAdj,
        vcg::vertex::Mark>{};

class MyFace : public vcg::Face<MyUsedTypes,
        vcg::face::VertexRef,
        vcg::face::Normal3f,
        vcg::face::VFAdj,
        vcg::face::FFAdj,
        vcg::face::BitFlags,
        vcg::face::Mark>{};

class MyTriMesh : public vcg::tri::TriMesh<
        std::vector<MyVertex>,
        std::vector<MyFace> >{};

#endif // MESHDEFS_H
